<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur est un administrateur
	if(isset($_SESSION) && $GLOBALS['USER']['admin']){
	
		// l'identifiant de la donnée à supprimer est indiqué par un entier
		if(isset($_GET['id']) && numericInt($_GET['id'])){

?>
<?php
//------------------------------------------------------------ Suppression des données

/********************************* Règles :

	- id doit désigner un seul utilisateur
	- L'utilisateur doit exister dans la BDD
	- L'utilisateur ne doit pas être l'utilisateur
	- Si l'utilisateur est un admin, il doit rester au moins un admin après suppression

*****************************************/

	$statut = array(); // indique le statut du traitement du formulaire (echec ou succes) - tableau contenant les messages à afficher
	$erreur = false; // indique si une erreur a été rencontrée lors du traitement

	//---------------------------------- Contrôle des données ----------------------------------
		
	$nb_utilisateurs = valueExists((int)$_GET['id'], "CODEINFOSUTILISATEUR", "infos_utilisateur", $connexion);
	
	if($nb_utilisateurs == 0){ // l'utilisateur n'existe pas
		$statut[] = "L'utilisateur indiqué n'existe pas";
		$erreur = true;
	}else{
	
		if($_GET['id'] == $_SESSION['user_id']){ // l'utilisateur à supprimer n'est pas l'utilisateur
			$statut[] = "Vous ne pouvez pas supprimer votre propre compte";
			$erreur = true;
		}else{
		
			$query_recuperation_infos_utilisateur = "SELECT u.ESTADMINISTRATEUR AS admin, u.CODEPERSONNE AS idPersonne ";
			$query_recuperation_infos_utilisateur .= "FROM infos_utilisateur u, personne p ";
			$query_recuperation_infos_utilisateur .= "WHERE u.CODEPERSONNE = p.CODEPERSONNE ";	
			$query_recuperation_infos_utilisateur .= "AND u.CODEINFOSUTILISATEUR = ".$_GET['id']." ";

			$result_recuperation_infos_utilisateur = mysql_query($query_recuperation_infos_utilisateur, $connexion) or logError("RECUPERATION INFOS UTILISATEUR-".$query_recuperation_infos_utilisateur."-".mysql_error());
			
			if(mysql_num_rows($result_recuperation_infos_utilisateur) == 1){ // on a réussi à récupérer les données de l'utilisateur à supprimer
				
				$tab_recuperation_infos_utilisateur = mysql_fetch_assoc($result_recuperation_infos_utilisateur);
				
				if((bool)$tab_recuperation_infos_utilisateur['admin']){ // si on tente de supprimer un administrateur
					
					$nb_administrateurs = valueExists(true, "ESTADMINISTRATEUR", "infos_utilisateur", $connexion);
					
					if($nb_administrateurs < 2){ // Il reste au moins un administrateur après la supression de ce compte
						$statut[] = "Vous ne pouvez pas supprimer le dernier administrateur";
						$erreur = true;
					}
					
				}
				
			}else{
				$statut[] = "Une donnée n'a pas pu être vérifiée";
				$erreur = true;
			}
			
			mysql_free_result($result_recuperation_infos_utilisateur);
			
		}
		
	}
	
	//---------------------------------- Suppression de l'utilisateur ----------------------------------
	
	if(!$erreur){ // aucune erreur n'a été rencontrée jusqu'ici
	
		// Suppression de l'utilisateur
		$query_suppression_utilisateur = "DELETE FROM infos_utilisateur WHERE CODEINFOSUTILISATEUR = ".$_GET['id'];
		$result_suppression_utilisateur = mysql_query($query_suppression_utilisateur, $connexion) or logError("SUPPRESSION UTILISATEUR-".$query_suppression_utilisateur."-".mysql_error());
		
		if($result_suppression_utilisateur === true){
			$statut[] = "L'utilisateur a été supprimé - redirection dans 2 sec...";
			logAction("UTILISATEUR (id: ".$_GET['id'].") SUPPRIME par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");
		}else{
			$statut[] = "Erreur critique lors de la suppression de l'utilisateur";
			$erreur = true;
		}

	}

?>
<?php
//------------------------------------------------------------ Affichage du statut
	
	if($erreur){
		boutonRetour("index.php?p=gestion/utilisateur_gere"); // appel à la fonction boutonRetour() définie dans fonctions.php
		afficherStatut($statut, 3); // appel à la fonction afficherStatut() définie dans fonctions.php
	}else{
		afficherStatut($statut, 1); // appel à la fonction afficherStatut() définie dans fonctions.php
		redirection("gestion/utilisateur_gere", 2);
	}

?>
<?php
//------------------------------------------------------------ Accès refusé à la page

		}else{
			afficherStatut("L'utilisateur n'est pas ou mal indiqué", 3); // appel à la fonction afficherStatut() définie dans fonctions.php
		}

	}else{
	
		if(isset($_SESSION)){
			include("pages/401.htm");
		}
	
	}

?>